public class DataTypeChange2 {
    public static void main(String[] args) {
        double d = 8.5;
        int a = (int) d;//把double的值强制转换为int
        //左边是int，右边是double, doouble > int'
        System.out.println("d = " + d);//d = 8.5
        System.out.println("a = " + a);//a = 8

        byte b1 = 1;
        byte b2 = 127;
        byte b3 = (byte) (b1 + b2);//把int结果强制转换为byte
        System.out.println("b1 = " + b1);
        System.out.println("b2 = " + b2);
        System.out.println("b3 = " + b3);
        //b3 = -128
        /*
        1的二进制：  00000001
        127的二进制：01111111
        结果：      10000000 （结果转为byte，只有1个字节，只截取低8位）
                   10000000都是补码，它所以特殊的补码

                   如果想要看结果，用计算器看非常简单，直接把二进制“补码”粘贴到计算器中，就可以得到结果
         */

        System.out.println("========================");
        int x = 1;
        int y = 2;
        System.out.println(x / y); //0   因为 int/int 结果也是int类型
        System.out.println((double)x/y);//这里表示把x强制提升为double，然后 double/int，结果是double
        System.out.println((double)(x/y));//0.0
        //(1)先计算(x/y) 得到0(2)把0强制提升为double
    }
}
